grammar FuncGrammar;

WS: [ \t\r\n]+ -> skip;

IDENTIFIER: ([a-zA-Z_][a-zA-Z0-9_]*) | [\u4e00-\u9fa5]+;

LINE_COMMENT: '#' .*? '\r'? '\n' -> skip;
COMMIT: '/*' .*? '*/' -> skip;
STRING : '"' (~["\r\n\\] | '\\' . )* '"' ;

prog: accessKeyWord className funcName '(' parameters ')' funcBlock;

funcName: IDENTIFIER;
className: IDENTIFIER;

funcBlock:  '{' .*?  '}';

accessKeyWord: 'public' | 'private' | 'protect';
parameters: (IDENTIFIER IDENTIFIER ',')* IDENTIFIER IDENTIFIER;

OP_SUMB: '=' | '+' | '-' | ';' | '.';

